package com.ys.ffms.common;

public class Result<T>{
    private String code;
    private String msg;
    private T data;

    public String getCode() { return code; }

    public void setCode(String code) { this.code = code; }

    public String getMsg() { return msg; }

    public void setMsg(String msg) { this.msg = msg; }

    public T getData() { return data; }

    public void setData(T data) { this.data = data; }

    public Result(){}

    public Result(T data){ this.data = data; }

    /**
     * 成功
     * @return
     */
    public static Result success(){
        Result result = new Result<>();
        result.setCode("0");
        result.setMsg("成功！");
        return result;
    }

    /**
     * 成功自定义msg
     * @param msg
     * @return
     */
    public static Result success(String msg){
        Result result = new Result();
        result.setCode("0");
        result.setMsg(msg);
        return result;
    }

    /**
     * 成功 自定义msg 返回实体数据
     * @param data
     * @param msg
     * @param <T>
     * @return
     */
    public static <T> Result<T>success(T data,String msg){
        Result<T> result = new Result<>(data);
        result.setCode("0");
        result.setMsg(msg);
        return result;
    }

    /**
     * 成功  返回实体数据
     * @param data
     * @param <T>
     * @return
     */
    public static <T> Result<T>success(T data){
        Result<T> result = new Result<>(data);
        result.setCode("0");
        result.setMsg("成功！");
        return result;
    }

    /**
     * 错误
     * @param code
     * @param msg
     * @return
     */
    public static Result error(String code,String msg){
        Result result = new Result();
        result.setCode(code);
        result.setMsg(msg);
        return result;
    }
}
